home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / html / ParagraphView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  4.0 KB  |  146 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.Container;
  4. import java.awt.Graphics;
  5. import java.awt.Rectangle;
  6. import java.awt.Shape;
  7. import javax.swing.SizeRequirements;
  8. import javax.swing.event.DocumentEvent;
  9. import javax.swing.text.AttributeSet;
  10. import javax.swing.text.CompositeView;
  11. import javax.swing.text.Element;
  12. import javax.swing.text.JTextComponent;
  13. import javax.swing.text.View;
  14. import javax.swing.text.ViewFactory;
  15. import javax.swing.text.html.CSS.Attribute;
  16.  
  17. public class ParagraphView extends javax.swing.text.ParagraphView {
  18.    private AttributeSet attr;
  19.    private StyleSheet.BoxPainter painter;
  20.  
  21.    public ParagraphView(Element var1) {
  22.       super(var1);
  23.       StyleSheet var2 = this.getStyleSheet();
  24.       this.attr = var2.getViewAttributes(this);
  25.       this.painter = var2.getBoxPainter(this.attr);
  26.    }
  27.  
  28.    protected SizeRequirements calculateMinorAxisRequirements(int var1, SizeRequirements var2) {
  29.       var2 = super.calculateMinorAxisRequirements(var1, var2);
  30.       float var3 = 0.0F;
  31.       int var4 = ((javax.swing.text.ParagraphView)this).getLayoutViewCount();
  32.  
  33.       for(int var5 = 0; var5 < var4; ++var5) {
  34.          View var6 = ((javax.swing.text.ParagraphView)this).getLayoutView(var5);
  35.          if (var6 instanceof InlineView) {
  36.             float var7 = ((InlineView)var6).getLongestWordSpan();
  37.             var3 = Math.max(var7, var3);
  38.          } else {
  39.             var3 = Math.max(var6.getMinimumSpan(var1), var3);
  40.          }
  41.       }
  42.  
  43.       var2.minimum = (int)var3;
  44.       var2.preferred = Math.max(var2.minimum, var2.preferred);
  45.       var2.maximum = Math.max(var2.preferred, var2.maximum);
  46.       return var2;
  47.    }
  48.  
  49.    public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  50.       StyleSheet var4 = this.getStyleSheet();
  51.       this.attr = var4.getViewAttributes(this);
  52.       super.changedUpdate(var1, var2, var3);
  53.    }
  54.  
  55.    public AttributeSet getAttributes() {
  56.       return this.attr;
  57.    }
  58.  
  59.    public float getMaximumSpan(int var1) {
  60.       return !this.isVisible() ? 0.0F : super.getMaximumSpan(var1);
  61.    }
  62.  
  63.    public float getMinimumSpan(int var1) {
  64.       return !this.isVisible() ? 0.0F : super.getMinimumSpan(var1);
  65.    }
  66.  
  67.    public float getPreferredSpan(int var1) {
  68.       return !this.isVisible() ? 0.0F : super.getPreferredSpan(var1);
  69.    }
  70.  
  71.    protected StyleSheet getStyleSheet() {
  72.       HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
  73.       return var1.getStyleSheet();
  74.    }
  75.  
  76.    public boolean isVisible() {
  77.       int var1 = ((javax.swing.text.ParagraphView)this).getLayoutViewCount() - 1;
  78.  
  79.       for(int var2 = 0; var2 < var1; ++var2) {
  80.          View var3 = ((javax.swing.text.ParagraphView)this).getLayoutView(var2);
  81.          if (var3.isVisible()) {
  82.             return true;
  83.          }
  84.       }
  85.  
  86.       if (var1 > 0) {
  87.          View var5 = ((javax.swing.text.ParagraphView)this).getLayoutView(var1);
  88.          if (var5.getEndOffset() - var5.getStartOffset() == 1) {
  89.             return false;
  90.          }
  91.       }
  92.  
  93.       if (((View)this).getStartOffset() == ((View)this).getDocument().getLength()) {
  94.          boolean var6 = false;
  95.          Container var4 = ((View)this).getContainer();
  96.          if (var4 instanceof JTextComponent) {
  97.             var6 = ((JTextComponent)var4).isEditable();
  98.          }
  99.  
  100.          if (!var6) {
  101.             return false;
  102.          }
  103.       }
  104.  
  105.       return true;
  106.    }
  107.  
  108.    public void paint(Graphics var1, Shape var2) {
  109.       Rectangle var3;
  110.       if (var2 instanceof Rectangle) {
  111.          var3 = (Rectangle)var2;
  112.       } else {
  113.          var3 = var2.getBounds();
  114.       }
  115.  
  116.       this.painter.paint(var1, (float)var3.x, (float)var3.y, (float)var3.width, (float)var3.height, this);
  117.       super.paint(var1, var2);
  118.    }
  119.  
  120.    public void setParent(View var1) {
  121.       super.setParent(var1);
  122.       this.setPropertiesFromAttributes();
  123.    }
  124.  
  125.    protected void setPropertiesFromAttributes() {
  126.       if (this.attr != null) {
  127.          super.setPropertiesFromAttributes();
  128.          ((CompositeView)this).setInsets((short)((int)this.painter.getInset(1, this)), (short)((int)this.painter.getInset(2, this)), (short)((int)this.painter.getInset(3, this)), (short)((int)this.painter.getInset(4, this)));
  129.          Object var1 = this.attr.getAttribute(Attribute.TEXT_ALIGN);
  130.          if (var1 != null) {
  131.             String var2 = var1.toString();
  132.             if (var2.equals("left")) {
  133.                ((javax.swing.text.ParagraphView)this).setJustification(0);
  134.             } else if (var2.equals("center")) {
  135.                ((javax.swing.text.ParagraphView)this).setJustification(1);
  136.             } else if (var2.equals("right")) {
  137.                ((javax.swing.text.ParagraphView)this).setJustification(2);
  138.             } else if (var2.equals("justify")) {
  139.                ((javax.swing.text.ParagraphView)this).setJustification(3);
  140.             }
  141.          }
  142.       }
  143.  
  144.    }
  145. }
  146.